package com.translate.web.param;

import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.translate.web.constant.ValidateCondtionAndMessage;
import com.translate.web.param.contract.ICustomerPoolAddMemberParam;
import com.translate.web.param.contract.ICustomerPoolAddParam;

public class CustomerPoolAddParam<P extends ICustomerPoolAddMemberParam> implements ICustomerPoolAddParam<P> {

	// 公海名称
	@NotNull
	@Pattern(regexp = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION, message = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION_MSG)
	private String poolName;

	// 状态 0 停用 1启用
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_MSG)
	private Byte status;

	// 前负责人领取规则 0不限制 1限制
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Byte preOwnerSetting;

	// 负责人领取规则限制天数
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Byte preOwnerSettingDay;

	// 是否限制领取频率 0不限制 1限制
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Byte receiveSetting;

	// 领取频率规则
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Integer receiveNum;

	// 是否设置提前提醒 0不开启 1开启
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Byte remindSetting;

	// 提醒规则天数
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Integer remindDay;

	// 收回规则 0不自动收回 1自动收回
	private Byte putInRule;

	// 创建人id
	private int createUserId;
	
	@NotNull
	@Size(min = ValidateCondtionAndMessage.SIZE_MIN, message = ValidateCondtionAndMessage.SIZE_MIN_MSG)
	private List<@Valid P> staff;

	
	
	public List<P> getStaff() {
		return staff;
	}

	public void setStaff(List<P> staff) {
		this.staff = staff;
	}

	public String getPoolName() {
		return poolName;
	}

	public void setPoolName(String poolName) {
		this.poolName = poolName == null ? null : poolName.trim();
	}

	public Byte getStatus() {
		return status;
	}

	public void setStatus(Byte status) {
		this.status = status;
	}

	public Byte getPreOwnerSetting() {
		return preOwnerSetting;
	}

	public void setPreOwnerSetting(Byte preOwnerSetting) {
		this.preOwnerSetting = preOwnerSetting;
	}

	public Byte getPreOwnerSettingDay() {
		return preOwnerSettingDay;
	}

	public void setPreOwnerSettingDay(Byte preOwnerSettingDay) {
		this.preOwnerSettingDay = preOwnerSettingDay;
	}

	public Byte getReceiveSetting() {
		return receiveSetting;
	}

	public void setReceiveSetting(Byte receiveSetting) {
		this.receiveSetting = receiveSetting;
	}

	public Integer getReceiveNum() {
		return receiveNum;
	}

	public void setReceiveNum(Integer receiveNum) {
		this.receiveNum = receiveNum;
	}

	public Byte getRemindSetting() {
		return remindSetting;
	}

	public void setRemindSetting(Byte remindSetting) {
		this.remindSetting = remindSetting;
	}

	public Integer getRemindDay() {
		return remindDay;
	}

	public void setRemindDay(Integer remindDay) {
		this.remindDay = remindDay;
	}

	public Byte getPutInRule() {
		return putInRule;
	}

	public void setPutInRule(Byte putInRule) {
		this.putInRule = putInRule;
	}

	public int getCreateUserId() {
		return createUserId;
	}

	public void setCreateUserId(int createUserId) {
		this.createUserId = createUserId;
	}

}